package xin.marcher.module.price.converter;

import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import xin.marcher.module.construction.domain.dto.SkuInfoDTO;
import xin.marcher.module.price.domain.dto.SkuPriceSellerRelationDTO;
import xin.marcher.module.price.domain.entity.SkuInfoDO;
import xin.marcher.module.price.domain.entity.SkuPriceSellerRelationDO;
import xin.marcher.module.price.domain.request.SkuPriceRequest;

import java.util.List;

/**
 * 商品价格对象克隆
 */
@Mapper(componentModel = "spring")
public interface SkuPriceSellerRelationConverter {
    /**
     * 对象克隆 DTO -> DO
     *
     * @param skuInfoDTO
     */
    SkuInfoDO dtoToEntity(SkuInfoDTO skuInfoDTO);

    /**
     * 对象克隆 request -> DO
     *
     * @param request
     * @return
     */
    SkuPriceSellerRelationDO requestToEntity(SkuPriceRequest request);

    /**
     * 对象克隆 list DO -> DTO
     *
     * @param skuPriceSellerRelationDOList
     * @return
     */
    List<SkuPriceSellerRelationDTO> listEntityToDTO(List<SkuPriceSellerRelationDO> skuPriceSellerRelationDOList);

    /**
     * 对象克隆 dto -> request
     *
     * @param skuPriceSellerRelationDTO
     * @return
     */
    @Mapping(target = "price", source = "price", ignore = true)
    SkuPriceRequest dtoToRequest(SkuPriceSellerRelationDTO skuPriceSellerRelationDTO);
}
